package main

import "fmt"

func main() {
	p := Person{"mike", 'f', 17}
	fmt.Printf(" main : %p , %v \n ", &p, p)
	p.SetInfoPointer()

	fmt.Println("***  方法值地址与调用 ****")
	pFunc := p.SetInfoPointer
	pFunc()
	vFunc := p.SetInfoValue
	vFunc()

}

type Person struct {
	name string
	sex  byte
	age  int
}

func (p Person) SetInfoValue() {
	fmt.Printf("SetInfoValue: %p, %v\n", &p, p)
}

func (p *Person) SetInfoPointer() {
	fmt.Printf("SetInfoPointer: %p, %v\n", p, p)
}
